package com.linsen.core.common.tree;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * @Description: 树节点，所有需要实现树节点的，都需要继承该抽象类
 * @ProjectName: erp
 * @Package: com.linsen.core.common.tree
 * @ClassName: TreeNodeAbstract
 * @Author: zhaoyong
 * @Email: zy765203718@gmail.com
 * @Date: 2023/7/25 11:01
 * @Version: 1.0
 */
public abstract class TreeNodeAbstract<T> implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 子节点列表
     */
    private List<T> children = new ArrayList<>();

    /**
     * 当前节点 id 实现树形结构必须实现该方法
     * @return
     */
    public abstract Object getId();

    /**
     * 父类 pid 实现树形结构必须实现该方法
     * @return
     */
    public abstract Object getPid();

    public List<T> getChildren() {
        return children;
    }

    public void setChildren(List<T> children) {
        this.children = children;
    }
}
